July 28, 2021
By: Syh

vs code 用户模板

  1. -打开用户模板
  2. 全局和局部
  3. 创建自己的代码模板

-打开用户模板

  1. 文件-》首选项-》用户片段
  2. Ctrl + Shift +p [输入 :snippets]

全局和局部

2021-07-21_193533

  1. 全局:创建代码片段文件
  2. 局部:如:clojure.json,java.json 。局部只能用于.Java,或.clj文件

创建自己的代码模板

	{
       "clj-routes": {
	 	"prefix": "clj-r",
	 	"body": [
			"(defn ${CLIPBOARD}",
			"  \"\"",
			"  [param]",
			" $0",
			")",
	 	],
	 	"description": "Log output to console"
	 } 
    } 
  • clj-routes: 代码片段的名称。如果没有提供描述,则通过智能感知显示。

  • description :是智能感知显示的代码片段的可选描述。

  • prefix:触发器词,在智能感知中显示代码片段,可以一个或多个【多个用 ["clj-r", "clj"]】。

  • body: 代码片段。

  • $0:当前光标的位置

${}格式
CLIPBOARD剪贴板的内容
TM_SELECTED_TEXT当前选中的文本或空字符串
TM_CURRENT_LINE当前行的内容
TM_CURRENT_WORD光标下单词的内容或空字符串
TM_LINE_INDEX基于零索引的行号
TM_LINE_NUMBER基于一个索引的行号
TM_FILENAME当前文档的文件名
TM_FILENAME_BASE当前文档的文件名,不带扩展名
TM_DIRECTORY当前文档的目录
TM_FILEPATH当前文档的完整文件路径
RELATIVE_FILEPATH当前文档的相对(相对于打开的工作区或文件夹)文件路径
WORKSPACE_NAME打开的工作区或文件夹的名称
WORKSPACE_FOLDER打开的工作区或文件夹的路径
CURRENT_YEAR本年度
CURRENT_YEAR_SHORT当前年份的最后两位数字
CURRENT_MONTH月份为两位数(例如“02”)
CURRENT_MONTH_NAME月份的全名(例如“七月”)
CURRENT_MONTH_NAME_SHORT月份的简称(例如“Jul”)
CURRENT_DATE一个月中的哪一天
CURRENT_DAY_NAME日期名称(例如“星期一”)
CURRENT_DAY_NAME_SHORT一天的简称(例如“星期一”)
CURRENT_HOUR24 小时制的当前小时
CURRENT_MINUTE当前分钟
CURRENT_SECOND当前秒
CURRENT_SECONDS_UNIX自 Unix 纪元以来的秒数
RANDOM6 位随机 Base-10 数字
UUID版本 4 UUI
RANDOM_HEX6 位随机 Base-16 数字

模板片段

	"clj-routes":{
		"prefix": "clj-routes",
		"body":  [
			"(defn ${TM_FILENAME_BASE/[\\_]/-/g} []",
			"[\"\"",
			"  {:swagger {:tags [\"\"]}}",
			"  [\"\"",
			"  {:post    {:summary    \"\" ",
			"             :parameters {:body }",
			"             :handler    (fn [{{:keys [body]}   :parameters",
			"                              user              :current-user}]",
			"                              (success ))}",
			"",
			"   :put     {:summary    \"\" ",
			"             :parameters {:body }",
			"             :handler    (fn [{{:keys [body]}   :parameters",
			"                               user             :current-user}]",
			"                             (success ))}",
			"",
			"   :delete  {:summary    \"\" ",
			"             :parameters {:body }",
			"             :handler    (fn [{{:keys [body]}   :parameters",
			"                              user              :current-user}]",
			"                                (success  ))}",
			"",
			"   :get     {:summary    \"\" ",
			"             :parameters {:query }",
			"             :handler    (fn [{{:keys [query]}  :parameters",
			"                              user              :current-user}]",
			"                               (success ))}}]])",
		],
		"description": "clojure-routes"
	},
	"clj-service":{
		"prefix": "clj-service",
		"body":  [
			"(defn ${CLIPBOARD}",
			"  \"${1:注释}\"",
			"  [param]",
			" $2",
			")",
		]
	},
	"clj-sql-list":{
		"prefix": "clj-sql-list",
		"body":  [
			"(-> (select :*)",
			"    (from :user)",
			"    (where (OR (eq :name \"嘿嘿\")",
			"    (like :email \"@163.om\")))",
			"    (red-db/get-list))"
		]
	},
	"clj-sql-insert":{
		"prefix": "clj-sql-insert",
		"body": [
			"(red-db/insert!",
			":user",
            "{:id 2 })",
		]
	},
	"clj-sql-update":{
		"prefix": "clj-sql-update",
		"body":  [
			"(-> (update-table :user)",
            "    (sset {:name \"嘿嘿\"})",
	        "    (where (eq :id 1))",
			"    (red-db/update!))",
		]
	},
	"clj-sql-delete":{
		"prefix": "clj-sql-delete",
		"body":  [
			"(-> (delete-from :user)",
			"    (where (eq :name \"嘿嘿\"))",
			"    (red-db/delete!))",
		]
	},
	"clj-sql-one":{
		"prefix": "clj-sql-one",
		"body":  [
			"(-> (select :*)",
			"    (from :user)",
			"    (where (eq :name \"嘿嘿\"))",
			"    (red-db/get-one))"
		]
	},
	"clj-sql-page":{
		"prefix": "clj-sql-page",
		"body": [
			"(-> (select :*)",
			"    (from :user)",
			"    (where (eq :name \"嘿嘿\"))",
			"    (pagination 0 10)",
			"    (red-db/get-page))"
		]
	},
	"clj-sql-count":{
		"prefix": "clj-sql-count",
		"body":  [
			"(-> (from :user)",
			"    (where (eq :name \"嘿嘿\"))",
			"    (red-db/get-count))"
		]
	},
	"cljs-controller":{
		"prefix": "cljs-controller",
		"body":  [
			"(kf/reg-controller",
 			"${1:controller}",
            "{:params (fn [route]",
            "             (when (-> route :path-params :path (= \"${2:path}\")) true))",
  			" :start (fn [])",
  			" :stop (fn [])})"
		]
	},
	"cljs-page":{
		"prefix": "cljs-page",
		"body":  [
			"(kf/reg-event-fx",
			"::fetch-page",
			"(fn [{:keys [db]} [query]]",
			 "    (let [par (if query query {:page 0 :size 10})",
			 "       param (into {} (remove (fn [[k v]] (or (string/blank? v) (nil? v))) par))]",
			"           {:db (update-in db [:model :page-list]",
						"                  #(assoc % :loading true))",
			"            :dispatch [:request/get",
				"                        {:url  (:page-list model-url)",
				"                         :params param",
				"                         :callback-event :model/fetch-page-success}]})))",
		   "",
		   "(kf/reg-event-db",
			":model/fetch-page-success",
			"(fn [db [data]]",
			  "   (update-in",
			   "   db",
			   "   [:model :page-list]",
			  "    #(assoc % :loading false",
			            "   :data (:rows data)",
					      "   :pagination {:total (:total-count data)",
									"   :pageSize (:size data)",
									"   :current (inc (:page data))}))))",
		]
	},
	"cljs-clear":{
		"prefix": "cljs-clear",
		"body":  [
			"(kf/reg-event-db",
			":model/clear-fabrics",
			"   (fn [db [data]]",
			"        (update-in",
			"          db",
			"         [:model :fabrics]",
			"          #(assoc % :loading false",
			"                     :data nil))))",
		]
	},
	"cljs-sub":{
		"prefix": "cljs-sub",
		"body":  [
			"(rf/reg-sub",
			":model/fetch-category-id-info",
			"  (fn [db]",
			  "    (get-in db [:model :category-id :data])))",
		]
	},
	"cljs-request":{
		"prefix": "cljs-request",
		"body":  [
			"(kf/reg-event-fx",
			":model/remove",
			"  (fn [{:keys [db]} [query]]",
			"      {:dispatch [:request/delete",
			"                      {:url  (:remove model-url)",
			"                       :params query",
			"                       :callback-event :model/remove-success}]}))",
		   "",
		   "(kf/reg-event-fx",
			":model/remove-success",
			"  (fn [{:keys [db]} [data]]",
			"       (.success ant/message \"删除成功\")",
			"       {:dispatch [:model/fetch-page]}))",
		]
	},
	"cljs-model":{
		"prefix": "cljs-model",
		"body":  [
			"(reg-model",
			"{:ns ${1:db-name}",
			 " :init ${2:db}",
			 " :db-events {}",
			 " :fx-events {}",
			 " :subs {}})",
		]
	},

Tags: 工具